www.gusucode.com > VC++仿XP免费Prof UIS界面库-源码程序 > VC++仿XP免费Prof UIS界面库-源码程序/code/Samples/ResizableChildSheet/ExtChildResizablePropertySheet.cpp
//Download by http://www.NewXing.com // ExtChildResizablePropertySheet.cpp : implementation file // #include "stdafx.h" #include "ResizableChildSheet.h" #include "MainFrm.h" #include "ExtChildResizablePropertySheet.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CExtChildResizablePropertySheet IMPLEMENT_DYNCREATE(CExtChildResizablePropertySheet, CExtResizablePropertySheet) BEGIN_MESSAGE_MAP(CExtChildResizablePropertySheet, CExtResizablePropertySheet) //{{AFX_MSG_MAP(CExtChildResizablePropertySheet) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CExtChildResizablePropertySheet construction/destruction CExtChildResizablePropertySheet::CExtChildResizablePropertySheet() : m_bInitTabSingleLine( false ) , m_bInitTabButtons( false ) , m_bInitTabButtonsFlat( false ) , m_bInitTabSeparatorsFlat( false ) , m_bTabStylesInitialized( false ) { // TODO: add member initialization code here m_bShowResizingGripper = false; } CExtChildResizablePropertySheet::~CExtChildResizablePropertySheet() { } BOOL CExtChildResizablePropertySheet::Create( CWnd * pWndParent ) { if( !CExtResizablePropertySheet::Create(pWndParent,WS_CHILD|WS_VISIBLE) ) { ASSERT( FALSE ); return FALSE; } ModifyStyle( WS_THICKFRAME|WS_BORDER|WS_CAPTION|WS_SYSMENU, 0, SWP_FRAMECHANGED ); ModifyStyleEx( WS_EX_DLGMODALFRAME|WS_EX_STATICEDGE|WS_EX_CLIENTEDGE, 0, SWP_FRAMECHANGED ); return TRUE; } BOOL CExtChildResizablePropertySheet::PreTranslateMessage(MSG* pMsg) { CMainFrame * pMainFrame = STATIC_DOWNCAST( CMainFrame, AfxGetMainWnd() ); if( pMainFrame->m_wndMenuBar.TranslateMainFrameMessage(pMsg) ) return TRUE; return CExtResizablePropertySheet::PreTranslateMessage(pMsg); } void CExtChildResizablePropertySheet::_TrickSyncActviveChild() { CPropertyPage * pWnd = CPropertySheet::GetActivePage(); CTabCtrl * pTabCtrl = CPropertySheet::GetTabControl(); if( pWnd != NULL && pWnd->GetSafeHwnd() != NULL && ::IsWindow( pWnd->GetSafeHwnd() ) && pTabCtrl != NULL && pTabCtrl->GetSafeHwnd() != NULL && ::IsWindow( pTabCtrl->GetSafeHwnd() ) ) { if( !m_bTabStylesInitialized ) { m_bTabStylesInitialized = true; DWORD dwStylesRemove = 0L; DWORD dwStylesAdd = 0L; if( m_bInitTabSingleLine ) { dwStylesRemove |= TCS_MULTILINE; dwStylesAdd |= TCS_SINGLELINE; } if( m_bInitTabButtons ) { dwStylesAdd |= TCS_BUTTONS; if( m_bInitTabButtonsFlat ) dwStylesAdd |= TCS_FLATBUTTONS; } if( dwStylesRemove != 0 || dwStylesAdd != 0 ) pTabCtrl->ModifyStyle( dwStylesRemove, dwStylesAdd, SWP_FRAMECHANGED ); if( m_bInitTabButtons && m_bInitTabButtonsFlat && m_bInitTabSeparatorsFlat ) pTabCtrl->SetExtendedStyle( TCS_EX_FLATSEPARATORS, TCS_EX_FLATSEPARATORS ); } RECT lpRect; GetClientRect(&lpRect); pTabCtrl->AdjustRect(FALSE, &lpRect); pWnd->MoveWindow(&lpRect, TRUE); } }